import java.nio.DoubleBuffer;
import java.nio.IntBuffer;
import java.util.ArrayList;

import com.sun.opengl.util.BufferUtil;


public class StateData {
	
	//Tranformation Data
	public float scale = 1.0f;
	public float angleX = 0.0f;
	public float angleY = 0.0f;
	//private float angleZ = 0.0f;
	
	//Current Shapes
	public ArrayList<Shape> shapeList = new ArrayList<Shape>();
	public ArrayList<Integer>  closest = new ArrayList<Integer>();
	
	//Screen to world values
	public float xDif;
	public float yDif;
	//private float zDif;
	
	//World Mouse Coordinates
	public float worldX;
	public float worldY;
	public float worldZ;
	
	//Camera Variables
	public float cameraMoveX;
	public float cameraMoveY;
	public float cameraMoveZ;
	public float cameraAngleX;
	public float cameraAngleY;
	public boolean cameraMode;
	
	StateData(float scale, float angleX, float angleY,
				ArrayList<Shape> shapeList, ArrayList<Integer> closest,
				float xDif, float yDif, float worldX, float worldY, float worldZ, 
				float cameraMoveX, float cameraMoveY, float cameraMoveZ, 
				float cameraAngleX, float cameraAngleY, boolean cameraMode){
			this.scale = scale;
			this.angleX = angleX;
			this.angleY = angleY;
			this.shapeList = (ArrayList<Shape>) shapeList.clone();
			this.closest = closest;
			this.xDif = xDif;
			this.yDif = yDif;
			this.worldX = worldX;
			this.worldY = worldY;
			this.worldZ = worldZ;
			this.cameraMoveX = cameraMoveX;
			this.cameraMoveY = cameraMoveY;
			this.cameraMoveZ = cameraMoveZ;
			this.cameraAngleX = cameraAngleX;
			this.cameraAngleY = cameraAngleY;
			this.cameraMode = cameraMode;
	}	
}
